package com.aiti.lulian.mapper.newCard;

import com.aiti.lulian.dto.newCard.EnterpriseUserCardSearchDto;
import com.aiti.lulian.entity.newCard.CardAudit;
import com.aiti.lulian.vo.newCard.EnterpriseUserCardVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface CardAuditMapper extends BaseMapper<CardAudit> {

    CardAudit queryCardAuditInfo(@Param("enterpriseId") String enterpriseId, @Param("templateId")String templateId, @Param("userId")String userId, @Param("status")Integer  status);

    Integer queryCardAuditCount(@Param("enterpriseId") String enterpriseId, @Param("templateId")String templateId, @Param("status")Integer  status);

    CardAudit queryCardAuditInfoByCardId(@Param("cardId") String cardId);

    CardAudit queryCardAudit(@Param("enterpriseId") String enterpriseId, @Param("templateId")String templateId, @Param("userId") String userId);

    List<EnterpriseUserCardVo> queryEnterpriseUserCardList(@Param("page")IPage<EnterpriseUserCardVo> page, @Param("dto") EnterpriseUserCardSearchDto dto);

    Integer queryEnterpriseNoActiveCount(@Param("enterpriseId") String enterpriseId, @Param("templateId")String templateId, @Param("mobile")String  mobile, @Param("cardId") String cardId);

    void updateCardAuditStatus(@Param("baseIdList") List<String> baseIdList, @Param("auditStatus") Integer auditStatus, @Param("userId") String userId, @Param("auditTime") Date auditTime, @Param("sourceAuditStatus") Integer sourceAuditStatus);

    void deleteCardAuditBatch(@Param("baseIdList") List<String> baseIdList, @Param("userId") String userId);

    Integer queryCardAuditTemplateUserCount(@Param("userId") String userId, @Param("templateId")String templateId, @Param("status") Integer status);

    void updateTemplateId(@Param("cardId") String cardId, @Param("templateId") String templateId, @Param("userId") String userId);

    List<String> queryCardIdList(@Param("templateId") String templateId, @Param("status") Integer status);

    List<EnterpriseUserCardVo> queryEnterpriseUserActive(@Param("page")IPage<EnterpriseUserCardVo> page, @Param("enterpriseId")String enterpriseId);

    List<EnterpriseUserCardVo> queryEnterpriseApplyMsg(@Param("page")IPage<EnterpriseUserCardVo> page, @Param("enterpriseId")String enterpriseId);

    List<CardAudit> queryCardAuditList(@Param("enterpriseId") String enterpriseId, @Param("userId")String userId);

    Integer queryCardAuditCountByTemplateId(@Param("templateId") String templateId);

    CardAudit queryUserFirstJoinAudit(@Param("enterpriseId") String enterpriseId, @Param("userId")String userId);

    Integer queryEnterpriseUserCardCount(@Param("enterpriseId") String enterpriseId, @Param("userId")String userId);

    Integer queryEnterpriseUserCardByMobileList(@Param("enterpriseId") String enterpriseId,@Param("templateId") String templateId, @Param("mobileList") List<String> mobileList);

    Integer queryEnterpriseUserCardByUserIdList (@Param("enterpriseId") String enterpriseId,@Param("templateId") String templateId, @Param("userIdList") List<String> userIdList);
}
